package org.dromara.common.web.core;

import cn.hutool.http.HttpStatus;
import org.dromara.common.core.domain.PageData;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.utils.StringUtils;

import java.util.List;

/**
 * web层通用数据处理
 */
public class BaseService {

  /** 响应返回结果   */
  protected PageData resData(Object data) {
    PageData res = new PageData();
    return res.success(data);
  }
  /** 响应返回结果   */
  protected PageData resData(Boolean result) {
    PageData res = new PageData();
    return result ? res.success() : res.error();
  }
  /** 响应返回结果   */
  protected PageData resData(int rows) {
    PageData res = new PageData();
    return rows > 0 ? res.success() : res.error();
  }
  /** 响应返回结果   */
  protected PageData resPage(IPage page) {
    PageData res = new PageData();
    res.put("rows",page.getRecords());
    res.put("total",page.getTotal());
    return res.success();
  }
  /** 响应返回结果   */
  protected PageData resPage(List list) {
    PageData res = new PageData();
    res.put("rows",list);
    res.put("total",list.size());
    return res.success();
  }
    /**
     * 响应返回结果
     *
     * @param rows 影响行数
     * @return 操作结果
     */
    protected R<Void> toAjax(int rows) {
        return rows > 0 ? R.ok() : R.fail();
    }

    /**
     * 响应返回结果
     *
     * @param result 结果
     * @return 操作结果
     */
    protected R<Void> toAjax(boolean result) {
        return result ? R.ok() : R.fail();
    }

    /**
     * 页面跳转
     */
    public String redirect(String url) {
        return StringUtils.format("redirect:{}", url);
    }

}
